//app.js
App({
  onLaunch: function () {
    // 展示本地存储能力
    var logs = wx.getStorageSync("logs") || [];
    logs.unshift(Date.now());
    wx.setStorageSync("logs", logs);

    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      },
    });
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting["scope.userInfo"]) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo;

              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res);
              }
            },
          });
        }
      },
    });
  },
  judgeLogin(login) {
    let userToken = this.getUserToken();
    // console.log(userToken)
    if (!userToken && !login) {
      wx.redirectTo({
        url: "/pages/login/login",
      });
      return false;
    } else if (userToken && login) {
      wx.redirectTo({
        url: "/pages/index/index",
      });
      return false;
    }
    return true;
  },
  judgeJump(callback) {
    let userToken = this.getUserToken();
    if (!userToken) {
      if (callback) {
        // this.getSetting(callback)
        wx.navigateTo({
          url: "/pages/login/login",
          success: res => {
            // 通过eventChannel向被打开页面传送数据
            res.eventChannel.emit("callback", callback);
          },
        });
      }
      return false;
    }
    return true;
  },
  getUserToken() {
    return wx.getStorageSync("token") ? true : false;
  },
  setUserInfo(userInfo) {
    wx.setStorageSync("userInfo", JSON.stringify(userInfo));
    this.userInfo = userInfo;
  },
  getUserInfo() {
    let userInfo = wx.getStorageSync("userInfo");
    try {
      this.userInfo = JSON.parse(userInfo);
    } catch (error) {}
  },
  globalData: {
    userInfo: {},
  },
});
